package com.landary.parameterrplacement.entity;

import lombok.*;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @author 刘欣
 * @createTime 2023/7/31 9:50
 * @description 用户
 */
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
    //部门编码
    private String avicDeptCode;
    //部门名称
    private String avicDeptName;
    //集团8位编码
    private String cn;
    //用户姓名
    private String fullName;
    //所网账号（人员唯一标识，用于单点登录）
    private String avicUserAccount;
    //所内编码（不可作为唯一标识）
    private String avicLocalCode;
    //用户邮件地址
    private String mail;
    //用户密级（0、1、2、3分别表示非涉密、一般涉密人员、重要涉密人员、核心涉密人员）
    private String avicUserSecurity;
    //人员类别
    private String avicEmployeeType;
    //用户排序号（数值小排在前），数值型字符串,可以为空字符串。
    private Integer avicSortOrder;
    //职务名称
    private String avicSimpleTitle;

    private String dn;
    //所属公司编码
    private String avicCorpCode;
    //所属公司名称
    private String avicCorpName;
    //是否有效（自定义，webservice接口推来的数据没有状态）
    private Boolean isAvailable;
    //身份证号
    private String avicIdCardNumber;


    public static List<User> mapToUserList(List<Map<String, String>> mapList) {
        List<User> userList = new ArrayList<>();

        for (Map<String, String> map : mapList) {
            User user = new User();

            user.setAvicDeptCode(map.get("avicDeptCode"));
            user.setAvicDeptName(map.get("avicDeptName"));
            user.setCn(map.get("cn"));
            user.setFullName(map.get("fullName"));
            user.setAvicUserAccount(map.get("avicUserAccount"));
            user.setAvicLocalCode(map.get("avicLocalCode"));
            user.setMail(map.get("mail"));
            user.setAvicUserSecurity(map.get("avicUserSecurity"));
            user.setAvicEmployeeType(map.get("avicEmployeeType"));
            if (map.get("avicSortOrder") != null) {
                user.setAvicSortOrder(Integer.parseInt(map.get("avicSortOrder")));
            }
            user.setAvicSimpleTitle(map.get("avicSimpleTitle"));
            user.setDn(map.get("dn"));
            user.setAvicCorpCode(map.get("avicCorpCode"));
            user.setAvicCorpName(map.get("avicCorpName"));
            user.setAvicIdCardNumber(map.get("avicIdCardNumber"));
            user.setIsAvailable(true);
            //根据人员的部门编号，过滤不需要同步的人员
//            String avicDeptCode = user.getAvicDeptCode();
//            if ( "80201".equals(avicDeptCode) || "80202".equals(avicDeptCode) || "80203".equals(avicDeptCode) ) {
//                continue;
//            }
            userList.add(user);
        }

        return userList;
    }
}
